import UIKit

@available(iOS 2.0, *)
extension QKC where AA :UITabBar {
		// weak reference. default is nil
     open func delegate_qk_s(_ delegate:  UITabBarDelegate? ) -> QKC<AA,YY,ZZ, UITabBarDelegate? >{
		return link(next: delegate).then_QK { $0.value.delegate = delegate }
	}
     open func delegate_qk_g() -> QKC<AA,YY,ZZ, UITabBarDelegate? >{
		 self +^ self.value.delegate
	}

		// get/set visible UITabBarItems. default is nil. changes not animated. shown in order
    open func items_qk_s(_ items:  [UITabBarItem]? ) -> QKC<AA,YY,ZZ, [UITabBarItem]? >{
		return link(next: items).then_QK { $0.value.items = items }
	}
    open func items_qk_g() -> QKC<AA,YY,ZZ, [UITabBarItem]? >{
		 self +^ self.value.items
	}

		// will show feedback based on mode. default is nil
     open func selectedItem_qk_s(_ selectedItem:  UITabBarItem? ) -> QKC<AA,YY,ZZ, UITabBarItem? >{
		return link(next: selectedItem).then_QK { $0.value.selectedItem = selectedItem }
	}
     open func selectedItem_qk_g() -> QKC<AA,YY,ZZ, UITabBarItem? >{
		 self +^ self.value.selectedItem
	}

    open func isCustomizing_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isCustomizing
	}

    @available(iOS 5.0, *)
    open func tintColor_qk_s(_ tintColor:  UIColor) -> QKC<AA,YY,ZZ, UIColor>{
		return link(next: tintColor).then_QK { $0.value.tintColor = tintColor }
	}
    @available(iOS 5.0, *)
    open func tintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor>{
		 self +^ self.value.tintColor
	}

		// default is nil
    @available(iOS 7.0, *)
    open func barTintColor_qk_s(_ barTintColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: barTintColor).then_QK { $0.value.barTintColor = barTintColor }
	}
    @available(iOS 7.0, *)
    open func barTintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.barTintColor
	}

	/// Unselected items in this tab bar will be tinted with this color. Setting this value to nil indicates that UITabBar should use its default value instead.
    @available(iOS 10.0, *)
     open func unselectedItemTintColor_qk_s(_ unselectedItemTintColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: unselectedItemTintColor).then_QK { $0.value.unselectedItemTintColor = unselectedItemTintColor }
	}
    @available(iOS 10.0, *)
     open func unselectedItemTintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.unselectedItemTintColor
	}

    @available(iOS, introduced: 5.0, deprecated: 8.0)
    open func selectedImageTintColor_qk_s(_ selectedImageTintColor:  UIColor?) -> QKC<AA,YY,ZZ, UIColor?>{
		return link(next: selectedImageTintColor).then_QK { $0.value.selectedImageTintColor = selectedImageTintColor }
	}
    @available(iOS, introduced: 5.0, deprecated: 8.0)
    open func selectedImageTintColor_qk_g() -> QKC<AA,YY,ZZ, UIColor?>{
		 self +^ self.value.selectedImageTintColor
	}

    @available(iOS 5.0, *)
    open func backgroundImage_qk_s(_ backgroundImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: backgroundImage).then_QK { $0.value.backgroundImage = backgroundImage }
	}
    @available(iOS 5.0, *)
    open func backgroundImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.backgroundImage
	}

    @available(iOS 5.0, *)
    open func selectionIndicatorImage_qk_s(_ selectionIndicatorImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: selectionIndicatorImage).then_QK { $0.value.selectionIndicatorImage = selectionIndicatorImage }
	}
    @available(iOS 5.0, *)
    open func selectionIndicatorImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.selectionIndicatorImage
	}

    @available(iOS 6.0, *)
    open func shadowImage_qk_s(_ shadowImage:  UIImage?) -> QKC<AA,YY,ZZ, UIImage?>{
		return link(next: shadowImage).then_QK { $0.value.shadowImage = shadowImage }
	}
    @available(iOS 6.0, *)
    open func shadowImage_qk_g() -> QKC<AA,YY,ZZ, UIImage?>{
		 self +^ self.value.shadowImage
	}

    @available(iOS 7.0, *)
    open func itemPositioning_qk_s(_ itemPositioning:  UITabBar.ItemPositioning) -> QKC<AA,YY,ZZ, UITabBar.ItemPositioning>{
		return link(next: itemPositioning).then_QK { $0.value.itemPositioning = itemPositioning }
	}
    @available(iOS 7.0, *)
    open func itemPositioning_qk_g() -> QKC<AA,YY,ZZ, UITabBar.ItemPositioning>{
		 self +^ self.value.itemPositioning
	}

    @available(iOS 7.0, *)
    open func itemWidth_qk_s(_ itemWidth:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: itemWidth).then_QK { $0.value.itemWidth = itemWidth }
	}
    @available(iOS 7.0, *)
    open func itemWidth_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.itemWidth
	}

    @available(iOS 7.0, *)
    open func itemSpacing_qk_s(_ itemSpacing:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: itemSpacing).then_QK { $0.value.itemSpacing = itemSpacing }
	}
    @available(iOS 7.0, *)
    open func itemSpacing_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.itemSpacing
	}

    @available(iOS 7.0, *)
    open func barStyle_qk_s(_ barStyle:  UIBarStyle) -> QKC<AA,YY,ZZ, UIBarStyle>{
		return link(next: barStyle).then_QK { $0.value.barStyle = barStyle }
	}
    @available(iOS 7.0, *)
    open func barStyle_qk_g() -> QKC<AA,YY,ZZ, UIBarStyle>{
		 self +^ self.value.barStyle
	}

    @available(iOS 7.0, *)
    open func isTranslucent_qk_s(_ isTranslucent:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: isTranslucent).then_QK { $0.value.isTranslucent = isTranslucent }
	}
    @available(iOS 7.0, *)
    open func isTranslucent_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.isTranslucent
	}

	/// Describes the appearance attributes for the tab bar to use.
    @available(iOS 13.0, *)
     open func standardAppearance_qk_s(_ standardAppearance:  UITabBarAppearance) -> QKC<AA,YY,ZZ, UITabBarAppearance>{
		return link(next: standardAppearance).then_QK { $0.value.standardAppearance = standardAppearance }
	}
    @available(iOS 13.0, *)
     open func standardAppearance_qk_g() -> QKC<AA,YY,ZZ, UITabBarAppearance>{
		 self +^ self.value.standardAppearance
	}

		// will fade in or out or reorder and adjust spacing
    open func setItems_qk_f(_ items: [UITabBarItem]?, animated: Bool) -> QKC<AA,YY,ZZ, [UITabBarItem]?>{
		 self +^ self.value.setItems(items, animated:animated) +^ items
	}

	// Reorder items. This will display a sheet with all the items listed, allow the user to change/reorder items and shows a 'Done' button at the top
		// list all items that can be reordered. always animates a sheet up. visible items not listed are fixed in place
    open func beginCustomizingItems_qk_f(_ items: [UITabBarItem]) -> QKC<AA,YY,ZZ, [UITabBarItem]>{
		 self +^ self.value.beginCustomizingItems(items) +^ items
	}

		// hide customization sheet. normally you should let the user do it. check list of items to see new layout. returns YES if layout changed
    open func endCustomizing_qk_f(animated: Bool) -> QKC<AA,YY,ZZ,Bool >{
		 self +^ self.value.endCustomizing(animated:animated)
	}

}

